Field of the Invention
The present invention is directed to distributed systems, and more particularly to distributed systems that use self-updating agents and analytics for system monitoring.
Description of the Related Art
In a data processing environment, data collection is the process of collecting values for computer system or network metrics using a data collection facility, such as SNMP.
SNMP is a protocol used by network hosts to exchange information used in the management of networks, such as Internet Protocol (IP) networks. SNMP network management is based on the client and server model. An SNMP client sends a request for SNMP data to an SNMP managed server or host. Each managed host runs a process called an agent, known as an SNMP Agent. The SNMP agent is a server process that maintains a management information base (MIB) database for the host. The SNMP managed host sends a response that includes the requested data that is stored in the management information base to the SNMP client.
Existing procedural approaches to SNMP data collection suffer from a number of drawbacks. Procedural solutions are typically developed and optimized for a certain data collection scenario (i.e., within a particular computer environment) and reflect a certain set of assumptions. As a result, an SNMP collection procedure may become sub-optimal or unsuitable when used in a different environment.
Large Internet Service Providers (ISPs) and carriers have multiple families and generations of networking equipment with various SNMP-related idiosyncrasies and constraints. The same logical data (e.g., interface octet counter) can be collected in a number of alternative ways, some of which are better than the others. For instance, a straightforward SNMP data collection procedure may produce poor data collection results, while a sophisticated SNMP data collection procedure which offers better data collection results may be difficult to develop.
Although brute-force data collection methods may be used which systematically enumerate all possible data collection candidates for a procedural solution and check whether each data collection candidate satisfies the problem's statement, many brute-force data collection procedures scale poorly when management information base tables become very large. Thus, size and scale of the management information base tables in an SNMP environment may dictate using different procedures for collecting SNMP data. In addition, the complexity of a procedural solution increases very rapidly when a data collection scenario involves correlating data from a number of related management information base tables.
SNMP uses one or more managers to monitor and manage hosts and devices on computer networks. Each managed system executes an agent. The agent then reports information using SNMP to the manager.
SNMP provides variable accessibility organized in hierarchies. These hierarchies, and other metadata (such as type and description of the variable), are described by the MIBs.
However, MIB is an arcane language, not properly machine readable and usually object oriented. With SNMP the agent(s) manage the MIB(s), and update them. The agents are heavily dependent on a static difficult update. With SNMP it is difficult to update the agent(s).